package catalogo.dao;

import java.util.List;






import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;

import catalogo.entidades.Puntuacion;

@Repository
public class PuntuacionDAOImpl implements PuntuacionDAO {

	
	private SessionFactory sessionFactory;
	
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
	
	@Override
	public void crearValoracion(Puntuacion valoracion) {
		sessionFactory.getCurrentSession().save(valoracion);

	}

	@Override
	public void modificarValoracion(Puntuacion valoracion)
	{
		sessionFactory.getCurrentSession().update(valoracion);

	}

	@SuppressWarnings("unchecked")
	public List<Puntuacion> listarPuntuacion(String idReceta)
	{
		
		Session session = sessionFactory.getCurrentSession();
		session.beginTransaction();
		List <Puntuacion> resultado = session.createQuery("from Puntuacion where idReceta = ?").list();
		return resultado;
					
	}

	@SuppressWarnings("unchecked")
	public List<Puntuacion> listarTodasLasValoraciones() {

       List<Puntuacion> list = sessionFactory.getCurrentSession().createQuery("from Puntuacion").list();
		return list;
	}
	
	public Puntuacion obtenerPuntuacion(String id_valoracion)
	{
		Session session = getSessionFactory().getCurrentSession();
		session.beginTransaction();
		Query query = session.createQuery("from puntuacion_receta where id_valoracion =? ");
		query.setParameter(0, id_valoracion);
		Puntuacion resultado = (Puntuacion)query.uniqueResult();
		return resultado;
	}



}
